package com.han.transfer.process;

import com.han.transfer.constant.BaseParameter;
import com.han.transfer.process.impl.CharacterGeneratorImpl;

import java.awt.image.BufferedImage;

/**
 * @author HanJiafeng
 * @date 2021年6月8日 10点33分
 */
public interface Generator {

    /**
     * 根据类型选择图片生成方式
     *
     * @param generatorTypeEnum 类型
     * @return 生成器
     */
    static Generator getInstance(GeneratorTypeEnum generatorTypeEnum) {
        if (generatorTypeEnum == GeneratorTypeEnum.CHARACTER) {
            return new CharacterGeneratorImpl();
        } else {
            throw new IllegalArgumentException();
        }
    }

    /**
     * 生成微信账单详情
     *
     * @param phoneTime    手机时间
     * @param battery      电量
     * @param payment      支付方式
     * @param payee        收款方
     * @param amount       金额
     * @param paymentMode  转账方式
     * @param transferTime 转账时间
     * @return 图片
     */
    BufferedImage drawWechatBillDetail(String phoneTime, int battery, BaseParameter.Payment payment, String payee, String amount, String paymentMode, String transferTime);

    enum GeneratorTypeEnum {
        /**
         * 字符生成
         */
        CHARACTER(),
        /**
         * 贴图生成
         */
        CHARTLET()
    }
}
